'''
@Author: ysz
@Date: 2019-12-18 17:12:14
@LastEditors  : ysz
@LastEditTime : 2020-01-14 10:44:53
@Description: 数据库存储模块
'''

import pymysql

class MysqlHelper(object):



    def __init__(self):
        '''
        @description: 初始化对象数据
        @param1: {
        *      self:"当前对象",
        *      }
        @return: 无
        @detail: 为对象添加属性，并为其赋值
        '''
        self.conn=pymysql.connect('47.95.143.136','root','',port=3306,db='loupan',charset='utf8')
        self.cursor=self.conn.cursor()


        
    def query_data(self,**args):
        '''
        @description: 查询函数
        @param1: {
        *      self:"当前对象",
        *      args:"关键字收集参数，收集多个参数",
        *      }
        @return: 如果查询在数据库中有结果，返回False,如果没有，返回True
        @detail: 根据查询语句，判断数据是否已存在数据库中
        '''
        if args["house_type"]=='secondary':
            sql=f'select * from db_housesecond_sh where about_id={args["about_id"]}'
            if self.sql_exec(sql,query_type='r'):
                print('数据库里有这个标题')
                return False
            sql=f"select * from db_housesecond_sh where area='{args['area']}' and owner_phone='{args['phone']}' and xq='{args['xq']}'"
            if self.sql_exec(sql,query_type='r'):
                print('数据有这个人的电话号码和小区和面积')
                return False
        else:
            sql=f"select * from db_houserent_sh where title='{args['title']}'"
            if self.sql_exec(sql,query_type='r'):
                print('数据库里有这个标题')
                return False
            sql=f'select * from db_houserent_sh where owner="{args["owner"]}" and xq="{args["xq"]}"and  money="{args["money"]}" and `configuration`="{args["configuration"]}" and `fyms`="{args["fyms"]}" and rent_way="{args["rent_way"]}"'
            # print(sql)
            if self.sql_exec(sql,query_type='r'):
                print('数据有这个人的姓名和小区，价钱，配置，描述，租借方式')
                return False 
        return True
    def sql_exec(self,sql,data='',query_type='w'):
        '''
        @description: 数据库执行语句
        @param1: {
        *      self:"当前对象",
        *      sql:"数据库语句",
        *      data:"值",
        *      query_type:"查询类型",
        *      }
        @return: 如果是查询语句，返回查询结果；如果是插入语句，返回插入的id
        @detail:根据query_type执行相应的条件判断
        '''
        # try:
        if query_type=='w':
            self.cursor.execute(sql,data)
            data=self.conn.insert_id()
            self.conn.commit()
            # print(data,'房源id')
            # print('存储成功')
        else:
            self.cursor.execute(sql)
            data=self.cursor.fetchone()
        # except:
        #     self.conn.rollback()
        #     data=''
        return data
    def __del__(self):
        '''
        @description: 析构函数
        @param1: {
        *      self:"当前对象",
        *      }
        @return: 无
        @detail: 删除相应的对象
        '''
        self.cursor.close()
        self.conn.close()
if __name__ == "__main__":
    myhelp=MysqlHelper()
    sql='insert into db_housesecond_sh(about_id,about_url,title,model1,model2,model3,area,total,unit,direction,layer,total_layer,isdecorate,decorate,`desc`,xq,wz,`status`,create_time,imgs,owner_name,owner_phone,sf,yg,zyqs,`type`,ncq,nj) values(%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s)'
    data=['1','1','1','1','1','1','1','1','1','1','1','1','1','1','1','1','1','1','1','1','1','1','1','1','1','1','1','1']
    myhelp.sql_exec(sql,data)
    # print(myhelp.query_data(about_id='38850330336008',area=56.04,xq='翠生社区',phone='13008166172'),'mysql')

